//	COPYRIGHT (C) 1980 BY BOARD OF TRUSTEES,
//	LELAND STANFORD JUNIOR UNIVERSITY

STATIC $( ANYRINGTESTS = NIL; CYCMINS = NIL; CYCMAXS = NIL; DIAMLISTS = NIL $);

LET READCYCCONSTR() BE
 $( STATIC $( SZMAX = NIL; NDIAMS = NIL; DIAMLIST = NIL; NBIGDIAM = NIL;
              TYP = NIL; DIAM = NIL; ZERODIAM = [TABLE 1,0] $);
 OUTSIF("LARGEST CYCLE SIZE TO BE TESTED:");
 SZMAX:=INNO();
 IF SZMAX<2 DO $( ANYRINGTESTS:=FALSE; RETURN $);
 ANYRINGTESTS:=TRUE;
 CYCMINS:=NEWVEC(SZMAX);
 CYCMAXS:=NEWVEC(SZMAX);
 CYCMINS!0:=SZMAX;
 CYCMINS!1:=0;
 CYCMAXS!1:=0;
 CYCMAXS!0:=SZMAX;
 FOR I=2 TO SZMAX DO
  $(
  OUTSIF("MIN AND MAX COUNT FOR SIZE ");
  OUTNOIF(I);
  OUTCHIF(':');
  CYCMINS!I:=INNO();
  CYCMAXS!I:=INNO();
  IF CYCMAXS!I=100 DO CYCMAXS!I:=PLUSINF
  $);
 DIAMLISTS:=NEWVEC(NTYPES);
 FOR I=1 TO NTYPES DO DIAMLISTS!I:=0;
 OUTSIF("NUMBER OF ATOM TYPES WITH NON-ZERO DIAMS:");
 NBIGDIAM:=INNO();
 WHILE NBIGDIAM>0 DO
  $(
  NBIGDIAM:=NBIGDIAM-1;
  OUTSIF("ATOM TYPE, NDIAMS AND DIAMS:");
  TYP:=FINDTYPE(INS());
  NDIAMS:=INNO();
  DIAMLIST:=NEWVEC(NDIAMS);
  DIAMLIST!0:=NDIAMS;
  FOR I=1 TO NDIAMS DO
   $(
   DIAM:=INNO();
   TEST DIAM GE SZMAX THEN
    $(
    DIAMLIST!I:=SZMAX;
    DIAMLIST!0:=I;
    WHILE NDIAMS>I DO $( I:=I+1; INNO() $);
    BREAK
    $)
   OR DIAMLIST!I:=DIAM
   $);
  DIAMLISTS!TYP:=DIAMLIST
  $);
 FOR I=1 TO NTYPES DO IF DIAMLISTS!I=0 DO DIAMLISTS!I:=ZERODIAM
 $);
